import static org.junit.Assert.*;

import org.junit.Test;

/**
 * 
 */

/**
 * La classe CorrigerTest permet de tester les methodes de la classe Corriger 
 *
 */
public class CorrigerTest {

	/**
	 * test de la   methode  {@link Corriger#calculNote(float, float, float, boolean)}.
	  */
	@Test
	
	public final void testCalculNote()
	{
		
		Corriger corriger=new Corriger();
		float res;
		float repjuste,repfausse,nbrep;
		
		boolean type;
		nbrep=10;
		repjuste=3;
		repfausse=5;
		type=false;
		res=0;
		assertTrue("Erreur type americain ((reponsejuste<reponsefausse))",corriger.calculNote(nbrep, repfausse, repjuste,type)==res);
		
		repjuste=5;
		repfausse=3;
		res=4;
		
		
		assertTrue("Erreur type americain ((reponsejuste>reponsefausse))",corriger.calculNote(nbrep, repfausse, repjuste, type)==res);
		
		type=true;
		repjuste=5;
		repfausse=3;
		res=10;
		
		assertTrue("Erreur type simple ((reponsejuste>reponsefausse))",corriger.calculNote(nbrep, repfausse, repjuste, type)==res);
		
		
		repjuste=2;
		repfausse=5;
		res=4;
		
		assertTrue("Erreur type simple ((reponsejuste<reponsefausse))",corriger.calculNote(nbrep, repfausse, repjuste, type)==res);
		
		
		
			}
	/**
	 * 
	 * On test les exceptions  arithmitiques lors de calcul de la note 
	 *    
	 */
	@Test  (expected = ArithmeticException.class)
	public final void testNbRep()
	{
		Corriger corriger=new Corriger();
		
		float res;
		float repjuste,repfausse,nbrep;
		
		boolean type;
		nbrep=0;
		repjuste=3;
		repfausse=5;
		type=false;
		res=0;
		
		if (corriger.calculNote(nbrep, repfausse, repjuste, type)!=res);
		{
			fail("Nombre des reponses ((cas de type americain)) est null");
		}
		type=true;
		//cas de type simple 
		
		if (corriger.calculNote(nbrep, repfausse, repjuste, type)!=res)
		{
			fail("Nombre des reponses((cas de type simple)) est null ");
		}
		
		
	}
	
	

	/**
	 * 
	 * Test de la methode  {@link Corriger#appreciation(float)}.
	   */
	@Test
	public final void testAppreciation()
	{
		Corriger corriger=new Corriger();
		float note;
		String mentionatt=new String();
        String mention=new String();
		
        note=14;
		mention=corriger.appreciation(note);
		mentionatt="Bien";
		assertTrue("Erreur mention ((Bien))",mention.equals(mentionatt));
	}

	/**
	 * 
	 * Test method for {@link Corriger#pourcentage(float)}.
	  */
	@Test
	public final void testPourcentage() 
			{
				Corriger corriger=new Corriger();
				float note;
				float res;
				note=15;
				res=75;
				assertTrue("Erreur de pourcentage",corriger.pourcentage(note)==res);
			}

}
